import Vue from 'vue';
import Vuex from 'vuex';

Vue.use(Vuex);

var store=new Vuex.Store({
	state:{
		id:'',
		search_right:[],
		arr:[],
		disable:false,
		checkAll:false,
		arr1:[],
		flg:false,
		v:0
	},
	mutations:{
		right(state,id){//分类页面的数据，id为分类左侧点击传递过来的id值
			uni.request({
				url:'http://jd.itying.com/api/pcate?pid='+id,
				success: (res) => {
					console.log(res);
					console.log(res.data.result);
							var arr=res.data.result;
							 arr.forEach((item) =>
									  {item['pic'] = item['pic'].replace(new RegExp(/\\/g), '/')});
							state.search_right=arr;//保存到变量中
				},fail: () => {
					console.log('分类左侧数据读取失败');
				}
			})
		},
		addShop(state,k){//k为详情页点击加入购物车传递过来的数据
			// console.log(k);
			//k为对象，要用一个数组接收，并且判断，当前数组有这条数据，让num数量++，否则没有的话，就添加到当前的数组里
			
			//循环当前的arr数组，找到_id，有的话返回下标，没有的话，返回-1
			var list=state.arr.findIndex((v)=>{
				return v._id==k._id;
			})
			console.log(list);//下标和-1
			if(list!=-1){
				state.arr[list].num++;
			}else{
				state.arr.push(k);
			}
			console.log(JSON.stringify(state.arr));
		},
		del(state,k){//删除
			state.arr.splice(k,1);//截取，slice截取，
		},
		jia(state,k){//加
			state.arr[k].num++;
		},
		jian(state,k){//减
			state.arr[k].num--;
			if(state.arr[k].num<1){
				state.arr[k].num=1;
				state.disable=true;
			}
		},
		aa(state,k){//单选
			state.arr[k].check=!state.arr[k].check;
			console.log(state.arr[k].check);//true
			
			if(state.arr[k].check){
				state.v+=1;
			}else{
				state.v-=1;
			}
			console.log(state.v);//1
			if(state.v==state.arr.length){
				state.checkAll=true;
			}else{
				state.checkAll=false;
			}
			console.log(state);
		
		},
		box(state){
			state.checkAll=!state.checkAll;
			state.arr.forEach(val=>{
				val.check=state.checkAll;
				console.log(val.check);
			})
			console.log(state.checkAll);
			
		},
		
	},
	getters:{
		sun(state){
			var ss=0;
			// for(var item in state.arr){//一般对象 item每一项，有时候不好使
			// 	if(state.arr[item].check){
			// 		ss+= state.arr[item].price*state.arr[item].num;
			// 	}
			// }
			// console.log(ss);
			for (let s of state.arr) {//数组，s为每一项
				if(s.check){
					ss+=s.price*s.num;
				}
			}
			return ss;
			
		}
	}
})
  export default  store;//导出vuex仓库